19.4 Drehfeld-Steuerelemente (»UpDown«-Steuerelemente)  
Das .NET Framework stellt zwei Drehfeld-Steuerelemente zur Verfügung: NumericUpDown und DomainUpDown. Beide präsentieren sich als eine Kombination aus einer einzeiligen Textbox mit einer vertikalen Bildlaufleiste. NumericUpDown zeigt dabei numerische Werte an, DomainUpDown Zeichenfolgen. Die Ähnlichkeit der beiden Steuerelemente spiegelt sich auch in der Vererbungshierarchie wieder, denn beide basieren auf der gemeinsamen abstrakten Basisklasse UpDownBase.
19.4.1 Das »NumericUpDown«-Steuerelement  
Die Eigenschaften
Das auf der Klasse NumericUpDown basierende Steuerelement bietet dem Anwender einen Zahlenbereich an, dessen Spanne durch die beiden Eigenschaften Maximum und Minimum festgelegt ist.
 Hier klicken, um das Bild zu Vergrößern
Abbildung 19.4 Das »NumericUpDown«-Steuerelement
Das kommt uns natürlich bekannt vor, denn auch die Steuerelemente ScrollBar und TrackBar veröffentlichen diese Eigenschaften. Deshalb verwundert es auch nicht, dass die Eigenschaft, die den aktuellen Wert enthält, mit Value bezeichnet wird. Bei jedem Klick auf die Pfeilschaltflächen erhöht oder verringert sich der angezeigte Wert um den Betrag, der durch die Eigenschaft Increment beschrieben wird. Dennoch unterscheiden sich diese Eigenschaften von den gleichnamigen eines Schiebereglers bzw. einer Bildlaufleiste, denn Minimum, Maximum, Value und Increment sind vom Datentyp decimal.
Die Anzeige im Steuerelement kann durch drei Eigenschaften beeinflusst werden: DecimalPlaces, ThousandsSeparator und Hexadecimal.
| Public Property Hexadecimal As Boolean
|
| Public Property ThousandsSeparator As Boolean
|
| Public Property DecimalPlaces As Integer
|
Wollen Sie die Werte im Steuerelement im Hexadezimalformat anzeigen lassen, stellen Sie die Eigenschaft Hexadecimal=True ein. Mit DecimalPlaces legen Sie die Anzahl der Nachkommastellen fest, und mit ThousandsSeparator weisen Sie das Steuerelement an, Tausendertrennzeichen in der Anzeige zu berücksichtigen.
Tabelle 19.5 Die Eigenschaften eines »NumericUpDown«-Steuerelements
| Eigenschaft
|
Beschreibung
|
| DecimalPlaces
|
Gibt die Anzahl der anzuzeigenden Dezimalstellen an.
|
| Hexadecimal
|
Legt fest, ob der Wert im Hexadezimalformat angezeigt werden soll.
|
| Increment
|
Ruft den Wert für das Inkrementieren oder Dekrementieren ab, wenn auf das Steuerelement geklickt wird.
|
| Maximum
|
Gibt den Maximalwert an.
|
| Minimum
|
Gibt den Minimalwert an.
|
| ThousandsSeparator
|
Gibt an, ob Tausendertrennzeichen angezeigt werden.
|
| Value
|
Gibt den aktuellen Wert des Steuerelements an.
|
Die Ereignisse
Nur zwei Ereignisse dieses Steuerelements sind besonders erwähnenswert: Scroll und ValueChanged. Scroll wird beim Klicken auf eine der Schaltflächen ausgelöst und ValueChanged bei einer Änderung des Wertes.
19.4.2 Das »DomainUpDown«-Steuerelement  
Dieses Steuerelement verbindet die Fähigkeiten eines Kombinationslistenfeldes mit dem NumericUpDown-Steuerelement. Allerdings ist die Programmierung nicht so einfach wie die des numerischen Bruders.
Die Verwaltung der internen Auflistung
Die von einem DomainUpDown-Steuerelement angezeigten Elemente vom Datentyp String werden von der internen Auflistung DomainUpDown.DomainUpDownItemCollection verwaltet. Vorausgesetzt, dass das Steuerelement nicht mit ReadOnly=True schreibgeschützt ist, kann der Anwender zur Laufzeit die Liste um einen beliebigen Eintrag ergänzen. Die Referenz auf die interne Collection, die wir zum Hinzufügen oder Löschen von Elementen benötigen, erhalten wir über die Eigenschaft Items:
| Public ReadOnly Property Items As DomainUpDownItemCollection
|
DomainUpDownItemCollection ist direkt aus der Klasse ArrayList abgeleitet und veröffentlicht daher neben einem Indexer die der Basisklasse eigenen Methoden, z. B. Add, Insert, Remove, RemoveAt usw.
Um das Steuerelement beim Laden des Formulars zu füllen, könnten wir im Load-Ereignis der Form zum Beispiel wie folgt Zeichenfolgen übergeben:
| domainUpDown1.Items.Add("Tokio")
|
| domainUpDown1.Items.Add("Bombay")
|
| domainUpDown1.Items.Add("London")
|
Alternativ bietet sich auch eine Methode AddRange an, der die Referenz auf eine Auflistung vom Typ ICollection übergeben wird.
 Hier klicken, um das Bild zu Vergrößern
Abbildung 19.5 Das »DomainUpDown«-Steuerelement
Klickt der Anwender zur Laufzeit auf eine der beiden Schaltflächen, werden die Elemente in der Reihenfolge angezeigt, in der sie der Liste hinzugefügt worden sind. Die Eigenschaft Sorted ermöglicht eine alphabetische Sortierreihenfolge.
Wollen Sie das Steuerelement unter Zuhilfenahme des Eigenschaftsfensters füllen, klicken Sie in der Wertespalte der Eigenschaft Items auf die angebotene Schaltfläche. Daraufhin öffnet sich ein sehr einfach zu bedienender Dialog, in dem die Elemente des Drehfelds zeilenweise eingetragen werden.
Das ausgewählte Element kann mit der Eigenschaft Text ausgewertet werden:
| textBox1.Text = domainUpDown1.Text
|
Zum Festlegen eines bestimmten Listenelements sind die Eigenschaften SelectedIndex und SelectedIndex nützlich:
| Public Property SelectedIndex As Integer
|
| Public Property SelectedItem As Object
|
Die beiden Eigenschaften eignen sich besonders, um nach dem Füllen des DomainUpDown-Steuerelements ein bestimmtes Element anzuzeigen, da sich, ähnlich wie bei einem Kombinationslistenfeld, nach dem Start kein Element im Anzeigebereich befindet. Mit
| domainUpDown1.SelectedIndex = 0
|
wird der erste Listeneintrag zum angezeigten Element.
|